package main

import (
	"fmt"
	"gitee.com/stevenchin/gostudy/6oop/interface3/queue"
)

/*
利用 slice + 空接口 实现队列
*/
func main() {

	// 先进先出队列
	fmt.Println("先进先出队列 >>>")
	queues := queue.FIFO{}
	queues.Push(2)
	queues.Push("3")
	queues.Push(5)
	fmt.Println(queues.IsEmpty())
	fmt.Println(queues.Pop())
	fmt.Println(queues.IsEmpty())
	fmt.Println(queues.Pop())
	fmt.Println(queues.IsEmpty())
	fmt.Println(queues.Pop())
	fmt.Println(queues.IsEmpty())
	fmt.Println(queues.Pop())

	// 先进后出队列
	fmt.Println("先进后出队列 >>>")
	filos := queue.FILO{}
	filos.Push(2)
	filos.Push("3")
	filos.Push(5)
	fmt.Println(filos.IsEmpty())
	fmt.Println(filos.Pop())
	fmt.Println(filos.IsEmpty())
	fmt.Println(filos.Pop())
	fmt.Println(filos.IsEmpty())
	fmt.Println(filos.Pop())
	fmt.Println(filos.IsEmpty())
	fmt.Println(filos.Pop())
}
